How are people using the Jupyter Notebook and IPython?


In [1]:
from IPython.display import display, Image, HTML
from talktools import website, nbviewer

Cam Davidson-Pilon's book

Cam Davidson-Pilon has written an entire book on Bayesian Statistics as a set of Jupyter+IPython Notebooks that are hosted on GitHub and viewed on https://nbviewer.jupyter.org.


In [2]:
website('http://camdavidsonpilon.github.io/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/')


Out[2]:

Mining the Social Web

Matthew Russell has written an O'Reilly published book, Mining The Social Web, that includes Jupyter+IPython Notebooks for all examples.


In [3]:
website('http://shop.oreilly.com/product/0636920030195.do')


Out[3]:

Python for Signal Processing

Jose Unpingco has written a series of blog posts on Signal Processing Jupyter+IPython Notebooks. These blog posts were the basis of a full length book Python for Signal Processing published by Springer in 2013.

Technical blogging

Jake Vanderplas at the University of Washington blogs using the IPython Notebook:

Social media

Many individuals are now using http://nbviewer.jupyter.org with Twitter to speak about a wide range of technical work.


In [4]:
Image('images/twitter_post.png')


Out[4]:

Peter Norvig

Peter Norvig (Director of Research at Google) has been using the Jupyter Notebook to explore interesting algorithmic problems. He began with a notebook inspired by a regular expression golf question from xkcd #1313:

Can I come up with an algorithm to find a short regex that matches the [presidential] winners and not the losers?


In [5]:
website('https://nbviewer.jupyter.org/url/norvig.com/ipython/xkcd1313.ipynb')


Out[5]:

This notebok spawned a huge amount of interest in this problem. A number of individuals started to interact with Peter over email about the algorithmic questions involved. This led to a second notebook on the topic:


In [6]:
website("https://nbviewer.jupyter.org/url/norvig.com/ipython/xkcd1313-part2.ipynb")


Out[6]:

The Notebook makes its easy to have detailed technical discussions involving code and data that are open and reproducible.

NASA/JPL

NASA/JPL is using the Jupyter Notebook on on various teams and is running nbviewer internally to share Jupyter Notebooks:


In [ ]:
Image('images/NASA-nbviewer.jpg')

Data-driven journalism

The Notebook is being used in reproducible, data-driven journalism.

538

Here is an example from 538.

On April 1, 2014, Walter Hickey of 538, published an article entitled The Dollars-and-Cents Case Against Hollywood's Exclusion of Women about the Bechdel test, which provides a simple way to model the prominence of women in movies.

On April 7, 2014, Brian Keegan, a post-doctoral research fellow in computational social science Northeastern University, published a blog post entitled The Need for Openness in Data Journalism. Along with the blog post, he published a replication of Walter Hickey's analysis using the Jupyter Notebook and nbviewer.


In [7]:
website("https://nbviewer.jupyter.org/github/brianckeegan/Bechdel/blob/master/Bechdel_test.ipynb")


Out[7]:

This caught the attention of Walter Hickey:

and led to a follow up article on 538 along with the posting of Walter Hickey's data and code on GitHub. We followed that up by creating an Jupyter+IR Notebook version of the original data analysis posted in the 538 GitHub repository:


In [8]:
website("https://nbviewer.jupyter.org/github/ellisonbg/data/blob/r-notebook/bechdel/analyze-bechdel.ipynb")


Out[8]:

BuzzFeed

BuzzFeed has started to publish data and Jupyter Notebooks for their articles in their BuzzFeedNews repository on GitHub. Here are a few highlights:

On August 7, 2014, BuzzFeed published an article by John Templon, entitled Tax Collection Scams Skyrocket. Here is their notebook that replicates the analysis:


In [9]:
website("https://nbviewer.jupyter.org/github/buzzfeednews/2014-08-irs-scams/blob/master/notebooks/irs-scams.ipynb")


Out[9]:

On August 20, 2014, BuzzFeed published an article by Jeremy Singer-Vine, entitled The Ferguson Area Is Even More Segregated Than You Probably Guessed. Here is their notebook that replicates the analysis:


In [10]:
website('http://nbviewer.ipython.org/github/BuzzFeedNews/2014-08-st-louis-county-segregation/blob/master/notebooks/segregation-analysis.ipynb')


Out[10]:

Reproducible academic publications

Publications in traditional academic journals are being accompanied by notebooks that reproduce and expand upon the main computational results of the work. See this section of the Notebook Gallery for a full list. Here is one notable example from Nature Genetics:


In [11]:
website("http://www.nature.com/ng/journal/vaop/ncurrent/full/ng.3051.html")


Out[11]:

The authors published a GitHub repository with notebooks that replicate the results:


In [12]:
website("https://nbviewer.jupyter.org/github/theandygross/TCGA/tree/master/Analysis_Notebooks/")


Out[12]:

Teaching

The Jupyter Notebook is being used for lecture materials and student work in a large number of university and high school courses on scientific computing and data science. Most of these courses are being developed publicly on GitHub. Here are a few of the ones we know about:


In [13]:
%%file courses.csv
"Course","University","Instructor"
"Python for Data Science","UC Berkeley","Josh Bloom"
"Introduction to Data Science","UC Berkeley","Michael Franklin"
"Working with Open Data","UC Berkeley","Raymond Yee"
"Introduction to Signal Processing","UC Berkeley","Miki Lustig"
"Data Science (CS 109)","Harvard University","Pfister and Blitzstein"
"Practical Data Science","NYU","Josh Attenberg"
"Scientific Computing (ASTR 599)","University of Washington","Jake Vanderplas"
"Computational Physics","Cal Poly","Jennifer Klay"
"Introduction to Programming","Alaskan High School","Eric Matthes"
"Aerodynamics-Hydrodynamics (MAE 6226)","George Washington University","Lorena Barba"
"HyperPython: hyperbolic conservation laws","KAUST","David Ketcheson"
"Quantitative Economics","NYU","Sargent and Stachurski"
"Practical Numerical Methods with Python","4 separate universities + MOOC","Barba, et al."


Overwriting courses.csv

In [ ]:
import pandas

In [ ]:
df = pandas.read_csv('courses.csv'); df

The examples shown here of how the Jupyter Notebook is being used are merely representative. We maintain a longer gallery of interesting Notebooks that contains a curated list of notebooks on various topics.